package com.ctshk.rpc.order.air.dto;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 *     机票订单详情DTO
 * </p>
 * @author lihang
 * @since  2021-03-17
 */
@Data
@ApiModel(value="AirOrderInfoDTO对象",description = "机票订单详情DTO")
public class AirOrderInfoDTO implements Serializable {

    private static final long serialVersionUID = -9038472022979409769L;

    private Long  id;

    @ApiModelProperty(value = "订单行程类型 1.单程 2往返 3 多程")
    private Integer tripType;

    @ApiModelProperty(value = "船票产品id,多个逗号分隔")
    private String productId;

    @ApiModelProperty(value = "是否代理下单")
    private Integer isAgent;

    @ApiModelProperty(value = "代理公司id")
    private Long agencyId;

    @ApiModelProperty(value = "代理公司")
    private String agencyCompany;

    @ApiModelProperty(value = "代理人名称")
    private String agentUserName;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "服务费(单服务费*门票数)")
    private BigDecimal serviceFee;

    @ApiModelProperty(value = "订单总额")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;

    @ApiModelProperty(value = "付款状态名称")
    private String paymentStatusName;

    @ApiModelProperty(value = "预订状态")
    private Integer scheduledStatus;

    @ApiModelProperty(value = "预订状态名称")
    private String scheduledStatusName;

    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;

    @ApiModelProperty(value = "取消状态名称")
    private String cancelStatusName;

    @ApiModelProperty(value = "来源")
    private Integer source;

    @ApiModelProperty(value = "来源名称")
    private String sourceName;

    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "已退款金额")
    private BigDecimal refundedAmount;

    @ApiModelProperty(value = "销售方式(1：单品销售 2：打包销售)")
    private Integer salesMethods;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "销售人员id")
    private Long salesmanId;

    @ApiModelProperty(value = "销售人员名称")
    private String salesmanName;

    @ApiModelProperty(value = "联系人姓")
    private String surname;

    @ApiModelProperty(value = "联系人名")
    private String name;

    @ApiModelProperty(value = "联系人姓名")
    private String contactName;

    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;

    @ApiModelProperty(value = "联系人手机区号id")
    private Long contactMobileAreaCodeId;

    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;

    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "称谓(1:先生;2:女士;3:小姐;4:男童;5:女童)")
    private Integer appellation;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "实收总金额")
    private BigDecimal payAmont;

    @ApiModelProperty(value = "退款总金额")
    private BigDecimal refundAmont;

    @ApiModelProperty(value = "旅客信息")
    private List<AirOrderTouristInfoDTO> airOrderTouristInfoDTOList;

    @ApiModelProperty(value = "收款信息")
    private List<AirOrderCollectionInfoDTO> airOrderCollectionInfoDTOList;

    @ApiModelProperty(value = "退款信息")
    private List<AirOrderRefundInfoDTO> airOrderRefundInfoDTOList;

    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;

    @ApiModelProperty(value = "是否需要显示确认订单按钮")
    private  boolean isConfirmBtn =false;
}
